/**
 * Generali Solutions d'assurances - Tous droits réservés &copy; 2007 - 2010
 */
package fr.generali.accueilclient.resumesuspens.assembler;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

import fr.generali.accueilclient.resume.suspens.builder.IResumeSuspensBuilder;
import fr.generali.accueilclient.resume.suspens.builder.ResumeSuspensDirector;
import fr.generali.accueilclient.resume.suspens.om.IResumeSuspens;
import fr.generali.accueilclient.resumesuspens.builder.DTOReponse2ResumeSuspensBuilder;
import fr.generali.souscriptiongestion.dommages.tosca.rechercheroperationscontratclient.pty.personnes.DTOPersonne;
import fr.generali.souscriptiongestion.dommages.tosca.rechercheroperationscontratclient.reponse.DTOReponse;
import fr.generali.souscriptiongestion.dommages.tosca.rechercheroperationscontratclient.demande.DTODemande;

/**
 * @author Holmes Kelly
 */

@Component("resumeSuspensMapper")
public class ResumeSuspensMapper {
    
    /**
     * LOGGER
     */
    private static final Logger LOGGER = LoggerFactory.getLogger(ResumeSuspensMapper.class);

    /**
     * @param idClient id du client
     * @return dtoDemande
     */
    public DTODemande mapperDTOPersonne(String idClient) {

        DTODemande demande = new DTODemande();

        DTOPersonne personne = new DTOPersonne();
        personne.setIdentifiantPersonne(idClient);

        demande.setClient(personne);
        demande.setOptionOperationsActives(null);

        return demande;
    }
    
    
    /**
     * 
     * @param input input
     * @return IResumeSuspens resume suspens
     */
    public IResumeSuspens mapperDTOReponse2Suspens(DTOReponse input){
        
        LOGGER.debug("Assemblage des suspens");
        IResumeSuspens resume = null;
        if (input != null) {

            IResumeSuspensBuilder resumeSuspensBuilder = new DTOReponse2ResumeSuspensBuilder(input);
            ResumeSuspensDirector resumeSuspensDirector = new ResumeSuspensDirector(resumeSuspensBuilder);

            resumeSuspensDirector.constructResumeSuspens();
            resume = resumeSuspensDirector.getResumeSuspens();
        }
        return resume;
    }

}
